home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / comm2 / mmddqt60.lha / REXX / MM_AddQuote.Rexx
OS/2 REXX Batch file  |  1996-04-25  |  2KB  |  42 lines

  1. /*
  2. ** $VER: MM_AddQuote 0.60 (14.05.96)
  3. **
  4. ** Written by Paolo Carotenuto
  5. **
  6. */
  7.  
  8. DROP MM.
  9.  
  10. PARSE UPPER ARG MM.Name MM.Tag
  11.  
  12. /* --------------------------------------------- */
  13.  
  14. MM.PathCfg   = 'MM:Config/' ; MM.PrgName   = 'MM_AddQuote v0.60' ; MM.Copyright = '(C) 1995-96 Paolo Carotenuto'
  15.  
  16. /* --------------------------------------------- */
  17.  
  18. CALL ReadConfig() ; IF FIND(MM.Aree,MM.Tag) ~= 0 THEN CALL AddQuote(WORD(MM.Aree,FIND(MM.Aree,MM.Tag)+1)) ; ELSE ADDRESS COMMAND MM.Editor ; EXIT
  19.  
  20. /* ---------------------------------------------------------------------- */
  21.  
  22. AddQuote: PROCEDURE EXPOSE MM.
  23. PARSE ARG MM.Mode ; IF MM.Mode = 'RANDOM' THEN DO ; NumFile  = RANDOM(0,MM.External.Count,TIME('S')) ; END ; ELSE NumFile = MM.Mode ; ADDRESS COMMAND MM.External.NumFile||' >>'||MM.Name ; ADDRESS COMMAND MM.Editor ; RETURN
  24.  
  25. /* ---------------------------------------------------------------------- */
  26.  
  27. ReadConfig: PROCEDURE EXPOSE MM.
  28.  
  29. MM.External.Count = 1 ; MM.Aree = '' ; MM.Editor = ''
  30. IF ~OPEN('Cfg',MM.PathCfg'MM_AddQuote.cfg','R') THEN DO ; SAY '*** Error: Can not open config "'MM.PAthCfg'MM_AddQuote.cfg"' ; EXIT 10 ;END
  31. DO WHILE ~EOF('Cfg') ; Linea = READLN('Cfg') ; IF (LEFT(Linea,1) ~= ';') & Linea ~= '' THEN DO ; PARSE VAR Linea Keyword Dato ; Dato = STRIP(Dato) ; SELECT ; WHEN UPPER(Keyword) = '#EXTERNAL' THEN DO ;  Cont              = MM.External.Count ; MM.External.Cont  = STRIP(Dato) ;  MM.External.Count = Cont + 1 ; END ; WHEN UPPER(Keyword) = '#AREA'   THEN MM.Aree   = MM.Aree UPPER(STRIP(Dato)) ; WHEN UPPER(Keyword) = '#EDITOR' THEN MM.Editor = Trasforma(UPPER(STRIP(Dato))) ; OTHERWISE NOP ; END ;  END ; END ; CLOSE('Cfg') ; RETURN
  32.  
  33. /* ---------------------------------------------------------------------- */
  34.  
  35. Replace: PROCEDURE ; PARSE ARG String, New, Old ; DO WHILE INDEX(String, Old) ~= 0  ; INTERPRET "PARSE VAR String l '"Old"' r" ; String = l || New || r ; END ; RETURN String
  36.  
  37. /* ---------------------------------------------------------------------- */
  38.  
  39. Trasforma: PROCEDURE EXPOSE MM. ; PARSE ARG String ; IF INDEX(String,'%')=0 THEN RETURN String ; String = Replace(String, MM.Name ,'%S'  ) ; RETURN String
  40.  
  41. /* ---------------------------------------------------------------------- */
  42.